Digital video and audio signals (synchronized in the form of a ‘program’) can be transmitted over a network using MPEG2 encoding. In a multicast system using MPEG2-TS, data is distributed from a terminal to a network, where multiple terminals may access the same data stream. Similarly, multiple streams may be broadcast onto a single data channel.
Multicast data streams are divided into packets for transmission. A data stream, in the form of packets, is multiplexed onto a single data channel with other similarly constructed data streams. To allow receiving terminals to differentiate between desired and other streams, packets are encoded with a field serving as selection criteria. This field permits the receiver to rapidly select desired packets and discard unwanted packets.
In an MPEG2-TS encoded system, streams are divided into 188-byte packets with 4-bytes of header information followed by 184-byte payload. A 13-bit segment within the header of the packet is the PID, which provides the selection criteria for these packets. The PID identifies which packets correspond to each of multiple data streams (or programs) multiplexed onto a single communications channel. In a multicast network, transport streams originating from the server have no inherent destination; consequently, any listener on the network can obtain the packets. For example, a network terminal wishing to obtain the program need only determine the PID of the desired program, and request that its upstream router subscribe to the stream (routers with no subscribers need not accept the multicast stream.)
The PID of the desired program is determined by cross-referencing the Service Announcement Protocol (SAP) tables (IP addresses mapped to services) with the Service Information (SI) tables (IP Addresses to PID's). Software generated MAC addresses for the PID are used to allow receiving terminals to quickly filter unwanted packets. The network interface hardware accepts only those packets whose PID value matches that of the desired program, resulting in reduced load on the protocol stack.
It is preferred to have network hardware filter packets as many packets as possible, and make minimal use of table structure and broadcast overhead messages.